package models;

import play.*;
import play.db.jpa.*;
import sun.text.resources.FormatData;

import javax.persistence.*;

import org.joda.time.DateTime;

import com.sun.xml.internal.ws.policy.sourcemodel.ModelNode.Type;

import models.usuario.Usuario;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;

@Entity
public class Notificacao extends Model {
	@ManyToOne
    public Usuario remetente;
	@ManyToOne
    public Usuario destinatario;
	public String nomelivro;	
	public TipoNotificacao tipoNotificacao;
	@Temporal(TemporalType.TIMESTAMP)
	public Date dataNotificacao;
	
	public Notificacao(){
		
	}
	
	public Notificacao(Usuario remetente, Usuario destinatario, String nomeLivro,TipoNotificacao tipoNotificacao){
		this.remetente = remetente;
		this.destinatario = destinatario;
		this.nomelivro = nomeLivro;
		this.tipoNotificacao = tipoNotificacao;
		Date dataAtual = new Date();
		this.dataNotificacao = dataAtual;
	}
	
	@Override
	public String toString(){
		DateFormat formatador = new SimpleDateFormat("dd/MM/yyyy HH:mm");  
		if(this.tipoNotificacao.equals(TipoNotificacao.INICIO_DEVOLUCAO))
			return remetente.perfil.nome+" iniciou a devolução o livro "+nomelivro+" em: "+formatador.format(dataNotificacao);
		else if(this.tipoNotificacao.equals(TipoNotificacao.CONFIRMACAO_DEVOLUCAO))
			return  remetente.perfil.nome+" confirmou a devolução do livro "+nomelivro+" em: "+formatador.format(dataNotificacao);
		else if(this.tipoNotificacao.equals(TipoNotificacao.PEDIDO_EMPRESTIMO))
			return remetente.perfil.nome+" deseja o livro "+nomelivro+" emprestado"+" em: "+formatador.format(dataNotificacao);
		else 
			return remetente.perfil.nome+" emprestou o livro "+nomelivro+" para "+destinatario.perfil.nome+" em: "+formatador.format(dataNotificacao);
	}
}
